package com.wjk.kylin.modules.generator.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wjk.kylin.modules.generator.entity.GenTable;

import java.util.Map;


/**
 * <p>
 *  业务表 服务类
 * </p>
 *
 * @author wangjkui
 * @since 2020-08-29
 */
public interface IGenTableService extends IService<GenTable> {

    IPage<GenTable> findPage(Page<GenTable> page, GenTable genTable);

    IPage<GenTable> findDbPage(Page<GenTable> page, GenTable genTable);

    /**
     * 根据tableNames 查询数据
     * @param tableNames
     * @return
     */
//    List<GenTable> findDbTableListByNames(String[] tableNames);

    /**
     * 导入表结构
     * @param tableList
     */
//    void importGenTable(List<GenTable> tableList);

    /**
     * 编辑
     * @param genTable
     */
    boolean update(GenTable genTable);

    /**
     * 删除
     * @param tableIds
     * @return
     */
    boolean deleteByIds(String[] tableIds);

    /**
     * 预览代码
     * @param tableId
     * @return
     */
    Map<String, Object> previewCode(String tableId);

//    /**
//     * 生成代码（下载方式）
//     * @param tableName 表名称
//     * @return
//     */
//    byte[] downloadCode(String tableName);

    /**
     * 生成代码（自定义路径）
     * @param tableName 表名称
     */
//    void generatorCode(String[] tableName);

    /**
     * 批量生成代码（下载方式）
     *
     * @param tableNames 表名称数组
     * @return 数据
     */
    byte[] downloadCode(String[] tableNames);

    /**
     * 导入表结构
     * @param tableNames
     */
    void importGenTable(String[] tableNames);

    GenTable getById(String id);
}
